home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / e / lsestuff / old / dbf.e < prev    next >
Text File  |  1999-11-29  |  874b  |  47 lines

  1. OPT MODULE
  2.  
  3. MODULE 'myoo/d1da', 'mymods/bits'
  4.  
  5. EXPORT OBJECT dbf
  6.    PRIVATE
  7.    d1da:PTR TO d1da
  8. ENDOBJECT
  9.  
  10. PROC dbf() OF dbf
  11.    NEW self.d1da
  12. ENDPROC
  13.  
  14. PROC end() OF dbf
  15.    END self.d1da
  16. ENDPROC
  17.  
  18. PROC set(bitnum) OF dbf
  19.    DEF nodenum, nodebitnum, bits
  20.    nodenum:=bitnum/32
  21.    nodebitnum:=bitnum - (nodenum * 32)
  22.    bits:=self.d1da.get(nodenum)
  23.    bits:=bitset(bits, nodebitnum)
  24.    self.d1da.set(nodenum, bits)
  25. ENDPROC
  26.  
  27. PROC clr(bitnum) OF dbf
  28.    DEF nodenum, nodebitnum, bits
  29.    nodenum:=bitnum/32
  30.    nodebitnum:=bitnum - (nodenum * 32)
  31.    bits:=self.d1da.get(nodenum)
  32.    bits:=bitclr(bits, nodebitnum)
  33.    IF bits = NIL
  34.       self.d1da.unset(nodenum)
  35.    ELSE
  36.       self.d1da.set(nodenum, bits)
  37.    ENDIF
  38. ENDPROC
  39.  
  40. PROC get(bitnum) OF dbf
  41.    DEF nodenum, nodebitnum
  42.    nodenum:=bitnum/32
  43.    nodebitnum:=bitnum-(nodenum*32)
  44. ENDPROC bitget(self.d1da.get(nodenum), nodebitnum)
  45.  
  46.  
  47.